 $LOAD_PATH.unshift File.join(File.dirname(__FILE__),'../..','ext_pr1/lib')
 require 'ext_pr1_v4'

#Zylindervolumenberechnung
# berechne_kreis_flaecheninhalt ::= (radius)::
# Test { (12.0 => 452.39), (12.5 => 530.93), ((-1) => Err), ((0) => Err), (("Welt") => Err)}
#
# berechne_zylinder_volumen ::= (radius, hoehe)::
#
# Test { ((12,5) => 2261.95), ((-1, 12) => Err), (("test",12) => Err), ((0, 12) => Err),
# (12, "test") => Err), ((12, (-1)) => Err), ((12, 0) => Err))}


def berechne_zylinder_volumen(radius, hoehe)
  validiere_uebergabeparameter(hoehe)

  berechne_kreis_flaecheninhalt(radius)*hoehe
end

#Test {{12}=>Err, {-12}=>Err, {'hallo'}=>Err, {12,5}=>530,93}
def berechne_kreis_flaecheninhalt(radius)
  validiere_uebergabeparameter(radius)
  Math::PI*(radius.round**2)
end

def validiere_uebergabeparameter(param)
  check_pre(param.float?)
  raise 'invalid parameter' if param.is_a?(Float) == false or param < 1
end